﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ComunesMGI.DataTypes;
using System.IO;
using ComunesMGI.Enum;

namespace MGI.Logica
{
    public interface IIncidentes
    {
       List<DataCampo> GetCampos(int idSistema, Lista lista);

        DataAltaIncidente AddIncidente(DataSistema incidente);

       List<DataIncidente> GetIncidentes(int idSistema);

        List<DataTarea> GetTareas(int idSistema, int idIncidente);

        bool AsignarResponsable(int idSistema, int idIncidente, DataTarea tarea, DataUsuario usuario);

        void AddWorkPackage(int idSistema, DataWP workPackage);

        List<DataWP> GetWorkPackages(int sisCod);

        void AsociarIncidentesWP(int idSistema, int idWorkPackage, List<int> incidentes);

        List<DataIncidenteReporte> GetIncidentesCerradosPeriodo(List<int> sistemas, DateTime perFchIni, DateTime perFchFin);

        List<DataIncidente> GetIncidentesWP(int idSistema, int idWorkPackage);

        string UploadFile(Stream sourceStream);

        bool AdjuntarArchivoIncidente(string nombreArchivo, int idSistema, int idIncidente, string nroTemp);

        DataAltaTarea AddTarea(int idSistema, int idIncidente, List<DataCampo> campos);

        List<DataEstadoWP> GetEstadosWP();

        List<DataIncidenteReporte> VisualizarIncidentesAsignados(int idSistema, string usuario, DateTime perFchIni, DateTime perFchFin);

    }
}
